#!/bin/bash

# 定义帮助信息函数（新增-b/-d说明）
show_help() {
    echo "用法：$0 [选项]"
    echo "控制lelamp设备的颜色模式与亮度配置"
    echo
    echo "选项："
    echo "  -r, --random-color     使用随机颜色模式"
    echo "  -c, --color r,g,b      指定RGB颜色值（格式：r,g,b，其中r/g/b为0-255的整数）"
    echo "  -b, --brightness val   初始亮度（取值：0.0-1.0的小数，默认0.5，例：-b 0.8）"
    echo "  -d, --delta val        亮度变化步长（取值：大于0的小数，默认0.1，例：-d 0.05）"
    echo "  -h, --help             显示此帮助信息"
}

# 初始化变量（新增亮度/步长变量）
random_color=0
color_value=""
brightness_value=""  # 存储初始亮度
delta_value=""       # 存储亮度变化步长

# 解析命令行参数（新增-b/-d分支）
while [[ $# -gt 0 ]]; do
    case "$1" in
        -r|--random-color)
            random_color=1
            shift
            ;;
        -c|--color)
            if [[ -n "$2" && "$2" != -* ]]; then
                color_value="$2"
                shift 2
            else
                echo "错误：--color 或 -c 需要指定RGB颜色值（格式：r,g,b）"
                exit 1
            fi
            ;;
        -b|--brightness)  # 新增：处理初始亮度参数
            if [[ -n "$2" && "$2" != -* ]]; then
                brightness_value="$2"
                shift 2
            else
                echo "错误：--brightness 或 -b 需要指定亮度值（格式：0.0-1.0的小数，例：-b 0.8）"
                exit 1
            fi
            ;;
        -d|--delta)  # 新增：处理亮度变化步长参数
            if [[ -n "$2" && "$2" != -* ]]; then
                delta_value="$2"
                shift 2
            else
                echo "错误：--delta 或 -d 需要指定步长值（格式：大于0的小数，例：-d 0.05）"
                exit 1
            fi
            ;;
        -h|--help)
            show_help
            exit 0 # 正常退出
            ;;
        *)
            echo "错误：未知选项 $1"
            echo
            show_help
            exit 1
            ;;
    esac
done

# 构建Python程序的参数（新增亮度/步长参数拼接）
param=""
# 1. 颜色相关参数
if [[ $random_color -eq 1 ]]; then
    param="--random-color"
elif [[ -n "$color_value" ]]; then
    param="--color $color_value"
else
    param=""  # 默认：随机颜色序列
fi

# 2. 新增：亮度相关参数（有值才拼接，无值则用Python默认值）
if [[ -n "$brightness_value" ]]; then
    param="$param --brightness $brightness_value"
fi
if [[ -n "$delta_value" ]]; then
    param="$param --change-delta $delta_value"
fi

# 执行Python程序（传递所有构建好的参数）
sudo uv run -m lelamp.turn_on $param